package com.bluebridgecup.BasicAlgorithms.TwoPointers;

import java.util.Scanner;

public class MergeNumberSequences {
    public static void main(String[] args) {
        // 创建 Scanner 对象，用于从标准输入读取数据
        Scanner scanner = new Scanner(System.in);

        // 读取第一个整数 n，表示数组 N 的有效元素个数
        int n = scanner.nextInt();
        // 读取第二个整数 m，表示数组 M 的有效元素个数
        int m = scanner.nextInt();

        // 用于记录操作的次数
        int ans = 0;

        // 创建数组 N，长度为 n + 10，为可能的操作预留一定空间
        int[] N = new int[n + 10];
        // 创建数组 M，长度为 m + 10，为可能的操作预留一定空间
        int[] M = new int[m + 10];

        // 循环 n 次，读取数组 N 的元素
        for (int i = 0; i < n; i++) {
            N[i] = scanner.nextInt();
        }

        // 循环 m 次，读取数组 M 的元素
        for (int i = 0; i < m; i++) {
            M[i] = scanner.nextInt();
        }

        // 使用双指针 i 和 j 分别遍历数组 N 和 M
        for (int i = 0, j = 0; i < n && j < m; ) {
            // 如果当前 N[i] 等于 M[j]，则两个指针都向后移动一位
            if (N[i] == M[j]) {
                i++;
                j++;
            }
            // 如果 N[i] 小于 M[j]，将 N[i] 累加到 N[i + 1] 上，操作次数加 1，i 指针后移
            else if (N[i] < M[j]) {
                N[i + 1] += N[i];
                ans++;
                i++;
            }
            // 如果 N[i] 大于 M[j]，将 M[j] 累加到 M[j + 1] 上，操作次数加 1，j 指针后移
            else {
                M[j + 1] += M[j];
                ans++;
                j++;
            }
        }

        // 输出操作的总次数
        System.out.print(ans);

        // 关闭 Scanner 对象，释放资源
        scanner.close();
    }
}